package singleton;

import java.util.function.Supplier;

/**
 * @desc 通过java8之后的Supplier实现懒加载单例
 * java.util.function.Supplier 是一个供给型接口，它不接受任何参数，但会返回一个指定类型的值。它的方法 get() 用于获取一个值。
 * @author larryjay
 * @since 2023/11/6 11:19
*/
public class SupplierInstance {

    private Supplier<Instance> supplier = () -> createInstance();


    public Instance createInstance(){
        return new Instance();
    }

    public Object getInstance() {
        return supplier.get();
    }

    class Instance{
        private String name;

        public Instance() {
        }

        public void setName(String name) {
            this.name = name;
        }

        public void print(){
            System.out.println(name);
        }
    }

}


